Many conventional arbitration schemes exist such as priority arbitration, round-robin arbitration and time sliced based arbitration schemes. In some approaches, bank interleaving is performed. Conventional arbitration solutions have a number of disadvantages such as (i) no guarantee of access for a given requester in a window of time, (ii) a fixed amount of transfer within a given amount of time for each requester, (iii) lack of optimization based on direction or banks, (iv) burst sizes that are less regular and often very long creating long latency and/or the need for large FIFOs in the system, (v) arbitration cycles that occur at the data unit level, (vi) bandwidth efficiencies that are often in the 70-80% range, and (vii) layouts that often have congestion between the multiple channel devices trying to access the same arbiter resource.
It would be desirable to implement an arbitration system that achieves a high average transfer bandwidth, low statistical latency, sets priorities and/or fairness, and/or has easy chip-level timing closure and/or low cost (such as for the client FIFO sizes).